package com.ftg.learn.chapter05;

/**
 * 1: = 赋值运算
 * 2： 内存模型
 * 3 : 自定义引用类型
 * 我们现在有一个整形数组 初始长度为2 ，那么我们理论上来讲可可以存储2int
 * 在实际开发过程当中有可能会存在存储 3的时候 .
 * 你的思想是什么 ?
 *
 * @author kangjx
 * @date 2022/12/17
 */
public class Third {

    //1: 成员  ： 全局变量 可以叫成员变量  :  定义在类的作用域里面，方法的作用域外面
    //1.1 值是否可以变化 ： 变量 常 量
    //1.1.1  全局变量
    //1.1.2  全局常量
    //1.2 从有无static 上来分
    //1.2.1 static variable    静态变量  {又叫做类变量 }
    //1.2.1.1 访问  类名.静态变量
    //1.2.1.2 类变量的特点 ： 先初始化，要比实例变量先初始化。 而且只初始化一次.
    //1.2.2 non-static variable非静态变量 {实例变量 | 成员变量 }
    //1.2.2.1 访问  先产生实例 类名 标识符 = new 类名();  标识符.非静态变量

    //2 : 成员 ： 方法  成员方法   : 固定格式 [] [] [] [] [] []{return }
    //2.1 实例方法 没有static 修饰的方法
    //2.2 类方法 也叫 静态方法 public static 方法

    //实例方法 成员方法
    public int add(int x,int y){
        return x + y;
    }

    //类方法  静态方法
    public static int add1(int x,int y){
        return x+y;
    }

    // 成员变量  全局便   非静态变量 实例变量
    int a = 9;

    // 静态变量 类变量 全局变量
    static int b = 9;

    // 成员常量 全局常量  非静常量 实例常量量
    final int c = 13;

    public static void main(String[] args) {
        int[] as = new int[2];
        as[0] = 23;
        as[1] = 45;
        //Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2  数组下标索引越界  下标 [0,1]

//        我就想存它,你的方案是什么 ?

        // 数组里面的每一个元素我们说过全是int ， 元素本身也是一个数组呢？


        //变量 用final 常量
        int[] old = as;

        as = new int[3];

        //平移
        for (int i = 0; i < old.length; i++) {
            as[i] = old[i];
        }

        as[2] = 56;

//        将原来的平移到新的里面来
        //长度变成了3
        for (int i = 0; i < as.length; i++) {
            System.out.println(as[i]);
        }
    }

}
